//
// Created by Zhangwj on 2023/9/27.
//

#include "ReturnStmtItemNode.h"

std::unique_ptr<ReturnStmtItemNode> ReturnStmtItemNode::ReturnStmtItemParser(Parser &parser) {
    //'return' [Exp] ';'
    std::unique_ptr<ReturnStmtItemNode> returnStmtItemNode = std::make_unique<ReturnStmtItemNode>();
    if (parser.getLexType(0) == LexType::RETURNTK) {
        parser.next();
    }
    if (parser.getLexType(0) != LexType::SEMICN) {
        returnStmtItemNode->Exp = ExpNode::ExpParser(parser);
    }
    if (parser.getLexType(0) == LexType::SEMICN) {
        parser.next();
    }
    return returnStmtItemNode;
}
